package com.huwei.data.manager;

import java.util.Objects;

/** 
 * 	数据源过滤接口 
 * 	作用：
 * 		用于过滤掉那些不会真正做数据处理的对象，或用户特定的一些对象；
 * 	使用：
 * 		实现该接口，并将实现类加载到spring容器中即可；{@link DataSourceManagerFacotry}使用了依赖注入，当存在该接口的实现类时，将自动注入，并使用注入的对象； 
 * 	
 * 	默认数据源过滤策略 
 * 	默认规则：
 * 		被加载的数据源接口，定义有{@link Filter}注解，将过滤；反之，不过滤
 * @author huwei
 */
public interface DataSourceFilter {

	default boolean filter(DataSourceOperation ds) {
		if(Objects.isNull(ds) || Objects.nonNull(ds.instance().getClass().getAnnotation(Filter.class))) {
			return true;
		}
		return false;
	}
}
